/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package moviefansystemControllers;
import java.util.ArrayList;
import moviefansystem.Film;
import moviefansystem.IDatabase;
import moviefansystem.Klant;
import moviefansystem.MySqlDatabase;
import moviefansystem.RealDatabase;
import moviefansystem.Videotheek;

/**
 *
 * @author Nick
 */
public class Controller {

    private Videotheek vt;
    IDatabase mdb;
    
    
    /**
     * 
     * @param vt 
     */
    public Controller() {
        mdb = new MySqlDatabase();
        vt= new Videotheek("mv");
    }
    

    
    /**
     * return klant die gelijk is aan KlantNR
     * @param klantNR het klantNr
     * @return het Klant object
     */
    public Klant getKlant(int klantNR)
    {      
        Klant k = vt.getKlant(klantNR);
        return vt.getKlant(klantNR);
    }
    /**
     * 
     * @param k
     * @return 
     */
    public boolean klantToevoegen(Klant k)
    {
        try
        {
            vt.klantToevoegen(k);
            return true;
        }
        catch(Exception ex)
        {
            return false;
        }
    }
    /**
     *
     * @param f
     * @return 
     */
    public boolean filmToevoen(Film f)
    {
        try
        {
            vt.filmToevoen(f);
            return true;
        }
        catch(Exception ex)
        {
            return false;
        }
    }
    public ArrayList<Film> getAlleFilms()
    {
        return mdb.getAlleFilms();
    }
    public boolean filmVerhuren(int KlantNr,int filmId)
    {
        try
        {
            mdb.maakNieuweVerhuurd(KlantNr, filmId);
            return true;
        }
        catch(Exception ex)
        {
         return false;
        }
    }
    
    public boolean filmReseveren(int klantNr, int filmId)
    {
        try
        {
            mdb.maakNieuweReservering(klantNr, filmId);
            return true;
        }
        catch(Exception ex)
        {
         return false;
        }
        
    }
    
    public boolean filmInnemen(int klantNr, int filmID)
    {
        try
        {
            mdb.neemItemIN(klantNr,filmID);
            return true;
        }
        catch(Exception ex)
        {
            return false;
        }
    }
    
    public ArrayList<Film> getPersItemsGehuurd(Klant k)
    {
        return mdb.getPersonlijkeItemsGehuurd(k);
    }
    public ArrayList<Film> getPersItemsGereseveerd(Klant k)
    {
        return mdb.getPersonlijkeItemsGereseveerd(k);
    }
    public ArrayList<Film> getPersItemsInbezit(Klant k)
    {
        return mdb.getPersonlijkeItemsInBezit(k);
    }
}
